package com.fqgame.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fqgame.user.entity.UserInfo;

import java.math.BigDecimal;

/**
 * 用户信息服务接口
 */
public interface UserInfoService extends IService<UserInfo> {

    /**
     * 创建订单并扣减余额（分布式事务示例）
     *
     * @param userId 用户ID
     * @param productId 商品ID
     * @param productName 商品名称
     * @param amount 金额
     * @return 订单ID
     */
    Long createOrderWithTransaction(Long userId, Long productId, String productName, BigDecimal amount);

    /**
     * 更新用户积分（消息队列示例）
     *
     * @param userId 用户ID
     * @param points 积分变动
     * @param reason 变动原因
     */
    void updateUserPoints(Long userId, Integer points, String reason);

    /**
     * 定时统计用户数据（任务调度示例）
     */
    void statisticsUserData();
}